package com.example.cool_core.http;


import android.util.Log;

import java.util.HashMap;
import java.util.Map;

import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;

public class RxDisposableUtil {
    public static synchronized RxDisposableUtil getInstance() {
        return RxDisposableUtil.RxDisposableUtilHolder.instance;
    }

    private static class RxDisposableUtilHolder {
        private static final RxDisposableUtil instance = new RxDisposableUtil();
    }

    private RxDisposableUtil() {
        disposableMap = new HashMap<>();
    }

    /**
     * 保存rx
     */
    private Map<Object, CompositeDisposable> disposableMap;

    public void addDisposable(Object tag, Disposable disposable) {
        //先查找 没有的话就创建 有的话就添加
        Log.d("cool", "添加一个tag:" + tag.toString());
        CompositeDisposable compositeDisposable = disposableMap.get(tag);
        if (compositeDisposable == null) {
            disposableMap.put(tag, new CompositeDisposable(disposable));
        } else {
            compositeDisposable.add(disposable);
        }
    }

    public void clearDisposable(Object tag) {
        Log.d("cool", "查找tag中");
        CompositeDisposable compositeDisposable = disposableMap.get(tag);
        if (compositeDisposable != null) {
            Log.d("cool", "找到tag并取消:" + tag.toString());
            compositeDisposable.clear();
        } else {
            Log.d("cool", "没找到tag：" + tag.toString());
        }
    }
}
